home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1999 March
/
EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso
/
earcd
/
devel
/
msqllib
/
example
/
speed_test
/
speed_test.c
< prev
next >
Wrap
C/C++ Source or Header
|
1999-01-01
|
3KB
|
125 lines
/*
msql.library TCP/IP stack vs mUSD speed test
©1998 Christophe Sollet (cfc@iname.com)
*/
#include <exec/types.h>
#include <proto/exec.h>
#include <proto/msql.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
struct Library *MsqlBase;
void Test(struct MsqlConnection *);
main()
{
struct MsqlConnection *co;
if(MsqlBase = OpenLibrary("msql.library", 3)) /* Open the library */
{
/* Before doing any msql operation, we need a valid MsqlConnection structure */
if(co = MsqlAllocConnection())
{
/* Now we'll attempt a connection on a local mSQL database engine */
/* Using "localhost", we're connecting by the TCP/IP stack */
if(MsqlConnect(co, "localhost"))
{
time_t stime = time(NULL), etime;
double diff;
Test(co);
MsqlClose(co);
etime = time(NULL);
diff = difftime(etime, stime);
printf("The test using TCP/IP stack took %.0f seconds\n", diff);
} else
{
printf("Connection failed\n");
printf("%s\n", MsqlGetErrMsg(co));
}
/* Now we'll attempt a connection on a local mSQL database engine */
/* Using NULL, we're connecting by the mUSD */
if(MsqlConnect(co, NULL))
{
time_t stime = time(NULL), etime;
double diff;
Test(co);
MsqlClose(co);
etime = time(NULL);
diff = difftime(etime, stime);
printf("The test using mUSD took %.0f seconds\n", diff);
} else
{
printf("Connection failed\n");
printf("%s\n", MsqlGetErrMsg(co));
}
MsqlFreeConnection(co);
} else printf("Alloc failed\n");
CloseLibrary(MsqlBase);
} else printf("Open Libs failed\n");
}
void Test(struct MsqlConnection *co)
{
m_result *mre, *mre2;
m_row dbname, tablename;
/* Gets current DB list */
mre = MsqlListDBs(co);
if(mre)
{
/* Get the name of the first db */
if(dbname = MsqlFetchRow(mre))
{
printf("%s", *dbname);
/* Select this db */
if(MsqlSelectDB(co, *dbname) != -1)
{
printf(" selected\n");
if(mre2 = MsqlListTables(co))
{
/* Get the name of the first table */
if(tablename = MsqlFetchRow(mre2))
{
int i;
char *query;
if(query = calloc(strlen(*tablename)+16, sizeof(char)))
{
sprintf(query, "SELECT * FROM %s", *tablename);
printf("\t'%s' 100 times\n", query);
for(i=0; i<100; i++)
{
MsqlQuery(co, query);
printf(".");
fflush(stdout);
}
printf("\n");
free(query);
}
}
}
MsqlFreeResult(mre2);
}
else
{
printf("\nSelectDB failed\n");
printf("%s\n", MsqlGetErrMsg(co)); // Display err message
}
}
MsqlFreeResult(mre);
} else
{
printf("ListDBs failed\n");
printf("%s\n", MsqlGetErrMsg(co)); // Display err message
}
}